Fork me on GitHub
雨正来【一路奔跑的人】


  • 首页

  • 归档

  • 分类

  • 标签

  • top

  • 关于

  • 搜索

Dubbo服务治理

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 629

Dubbo服务治理

dubbo-config 模块 源码理解

dubbo的配置优先级别:

三大核心能力

  1. 面向接口的远程方法调用
  2. 服务容错和负载均衡
  3. 服务自动注册和发现

服务治理的功能

  1. 服务提供者注册服务
  2. 消费者获取服务,并通过负载均衡策略选择服务提供者
  3. 动态增减服务提供者和消费者
  4. 服务监控
  5. 服务限流 服务之间
  6. 服务降级

dubbo 服务应用名

指定zk地址

指定消费者或提供者 协议和端口

<dubbo:reference interface =”” id=”提供者service”>

<dubbo:service =”” id=””>

定义提供的beans ,包括接口和实现

异步化消息服务

不阻塞原来业务

服务调用解耦

任务调度

任务:task 完成一系列的事情

调度 : 执行任务的智慧,处罚,规则程序

应用场景

  • 业务跑批轮训等待处理
  • 失败异常重试
  • 定时处理任务

单机调度机制:

Timer定时器

time 类 内存里TaskList

timerTask 类 本质上一个thread

所有任务都是一个线程调度,同一时间只能有一个任务执行

​ScheduledExcutor

​Quartz missfire 机制

elastic job 分片的机制 如何分片

池化技术

连接池(数据库,redis等)

  • 核心连接数
  • 最大连接数
  • 连接等待时间
  • 数据读取时间
  • 等待释放时间
  • validate

tomcat 线程池

连接池存储clientSocket连接 ,io线程池 ,worker线程池

io线程获取clientsocket,recv ,之后交给worker线程处理

缓存技术

快速访问

千万级别数据

主键1ms以内

唯一索引 10ms

非唯一查询 100ms

全表扫描 s+

qps< 10000

模型不能聚合

设计原则

  • 将数据写入/读取速度最快的存储
  • 将数据缓存到应用最近的位置
  • 将数据离用户最近的位置
缓存分类
  • CDN缓存
  • 反向代理缓存
  • 分布式Cache
  • 本地应用缓存。guava 本地缓存
如何缓存
  • 实时写入

  • 异步写入

  • 读取时实时写入

  • 读取时异步写入

    缓存失效

  • 固定时间 redis是惰性删除+定时失效

  • 相对时间

多级缓存

  • cdn缓存 静态资源
  • nginx 代理缓存 (接入层 ,ng的proxy cache)
  • nginx lua share dic (应用层的ng 内存字典)
  • nginx lua redis (应用层的lua脚本)
  • tomcat 本地缓存
  • redis服务器
  • 数据库

缓存不一致性

数据容忍性

异步更新机制

EalsticSearch

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 80

EalsticSearch

  • index 相当于数据库
  • type 相当于 表
  • document 字段filed
  • mapping 相当于schema
  • indexed 倒序索引

curl命令

支持restful 风格的api

Curl - i 显示相应头信息

-x get/post/delete

-o xx.html 输出到xx.html中

-v 显示通讯过程

进入es/conf 中修改network.host = 远程机器的ip

解毒redis 集群

发表于 2019-03-31 | 分类于 nosql-缓存-redis | | 阅读次数:
| 字数统计: 2.5k

redis 复习

常用的数据结构
string,list,set,zset ,hash,hyperLogLog,geo
底层数据结构
简单动态字符串,链表,字典,跳跃表,整数集合,压缩列表,对象

阅读全文 »

RabbitMq

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 531

RabbitMq

Amqp 消息协议

Routingkey 路由健 连接生产者消息和exchage之间纽带。routingkey需要和交换机类型和绑定健bingdingkey联合才能最终生效。

Binding 通过绑定exchage和队列关联起来。绑定时候指定一个bindingkey。

exchange 路由交换机

交换机类型 fanout,direct,topic ,headers

fanout是广播形式,

无视routingkey,它会把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中

阅读全文 »

分布式解决方案

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 424

#分布式解决方案

Fescar

Fescar github 地址
传统的解决无侵入的方案为XA,但是XA 有一定的局限性,比如要求mysql版本高于5.7
其他都是在业务上采用如下解决方案:

  • 基于可靠消息解决
  • TCC
  • Saga
    阅读全文 »

openresty nginx

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 149

安装openresty nginx

命令

install openresty/brew/openresty```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

之后当前目录下创建`mkdir ~/work cd ~/work mkdir logs/ conf/`

在conf 下创建nginx.conf 配置文件,默认的配置文件在`/usr/local/etc/openresty/nginx.conf` 默认的端口80

`nginx -s reload nginx -h nginx -p nginx -c `

nginx.conf 配置文件内容

配置这个反向服务代理要代理的服务器集群
<!-- more -->

``` shell
upstream backend_server {
server localhost:8080 weight=1;
}

server{
listen 7777;
location / {
proxy_pass http://backend_server ;
}
#当用户访问这个目录下文件,即认为在访问静态资源
location /resources {
alias //usr/local/opt/openresty/nginx/html;
}
}

linux复习

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 291

linux复习

  1. # 自动标记这一次的 commit 为上一个 commit 的 fix
  2. $ git commit –fixup
  3. git rebase -i —autosquash 自动组织合并两个 commit
  4. docker ps -a | awk ‘{print $1}’ | tail -12 | xargs docker rm 删除容器倒数12个 对应的 last -n

内核空间,用户空间

ls -S1 从大到小排序

ls-Slr 从小到大排序

ls-lt 从新到旧

ls-lrt 从旧到新

find / -name ‘target.xxx’

find ~ -iname ‘ddd*‘ 忽略大小写查找文件

grep ‘moo’ target* 查找所有target开头的文件中含有moo字符的文件

Awk ‘{print $1,$2}’ xx.xx

Awk ‘$1==”tcp” & $2==0 {print $0}’ xx.xx

阅读全文 »

微服务

发表于 2019-03-31 | 分类于 编程 | | 阅读次数:
| 字数统计: 990

微服务架构学习

服务描述

三种类型

RESTful Api (springcloud),XML配置(dubbo)以及IDL文件(grpc)

restful和grpc 都是跨语言平台的

如何注册和发现服务

注册中心原理

https://www.processon.com/diagraming/5c2991a0e4b04eb4e36747fc

注册中心Api

服务注册及反注册 :

服务提供者提供至少有服务地址,端口等信息。

心跳汇报:及时反馈是否存活

服务订阅: 通过服务订阅提供服务地址列表,并变更时通知

服务变更查询

服务查询

服务修改

集群部署

阅读全文 »

让命令飞起来 命令操作

发表于 2016-11-13 | | 阅读次数:
| 字数统计: 214

categories: 编程 # 命令小纪

#让命令飞起来
CTRL + A 行首
ctrl +e 行尾
alt +b 后单词
alt +f 前单词
CTRL alt + F 前一个字母
ctrl + alt + b 后一个字母
ctrl + c 结束命令
ctrl +u 删掉命令

阅读全文 »

spring4 +cxf 排错

发表于 2016-10-18 | 分类于 编程 | | 阅读次数:
| 字数统计: 411

##排查依赖错误
由于项目用到cxf 需要调用第三方的接口,需要写一个客户端。这个貌似没啥问题,记得之前写过的cxf 现在好久不用了,apache的官网已经更新到了3.1.7 。
自从用maven以来还真很少遇到过冲突,但是群里大婶说的一句话很好,maven已经较少了依赖关系的冲突,但是不代表就不存在。
项目有用gradle的,也有用maven的。
首先你的jvm可以加上参数 -XX:+TraceClassLoading 这个主要是看你的classtrace的。
mvn dependency:tree 和 gradle的 dependencies 命令很重要。
主要还是看报错控制台的信息,我的错误为 java.lang.NoSuchFileldError : REFLECTION
这就很明显了是冲突,之后看具体的出错的 class —> RuntimeModelBuilder

阅读全文 »
1…4567
lancecong

lancecong

68 日志
9 分类
32 标签
点下试试
  • 😆 网易云音乐 😆
  • Coldplay Official Website
  • 获取 Elon Musk 的新闻
  • 尼古拉·特斯拉:发明了现代世界的人
© 2017 — 2020 lancecong
微信扫一扫,call me !
0%