分布式
汉唐味道
这个作者很懒,什么都没留下…
展开
-
分布式(一)--------------zookeeper
zookeeper可以实现分布式配置中心zk从follower,或者observer看对于cp,ap都是支持的zookeeper安装修改zoo_sample.cnf--------->zoo.cnf配置文件含义dataDir:zk定时将内存中的数据打个快照存到指定目录。dataLog:日志zk基本操作zk: localhost:2181(CONNECTED)...原创 2019-04-20 21:23:51 · 87 阅读 · 0 评论 -
redis-----(二)-----哨兵和主从复制
主从复制的方案:一主二从,一主一从(从为下一个从的主机)生产环境中主机不要开启持久化(appendonly no),从机中开启### 缺点1.由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。2.当主机宕机之后,将不...原创 2019-05-26 09:47:58 · 215 阅读 · 0 评论 -
redis-----(三)-----redisCluster
redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis cluster集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到1000节点。redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单...原创 2019-05-26 17:45:37 · 91 阅读 · 0 评论 -
kafka--------特性----生产者
kafka区别于其他MQ,消费消息需要去kafka服务器去拉取消息生产者的参数配置properties.setProperty在:ProducerConfig类中消息生产流程消息确认:首领分区:kafaka也是通过过半机制,进行选举首领节点与性能相关配置ACKS:1buffer.memory:缓存在本地消息大小,默认32Mmax.blo...原创 2019-05-22 19:02:55 · 138 阅读 · 0 评论 -
Dubbo(三)-----------服务导出(注册与服务暴露)----乱
dubbo框架中关于协议的接口Protocol,中导出export(服务注册和服务暴露),导入referdubbo配置文件provider和consumer属性对应的类dubbo配置存在的地方:1.xml(bean初始化值) 2.-D系统配置,idea的配置 3.配置中心(配置中心app,配置中心全局)4.dubbo.properties配置的加载顺序...原创 2019-05-13 17:21:49 · 324 阅读 · 0 评论 -
kafka--------特性----消费者
偏移量是一个自增长的ID 用来标识当前分区的哪些消息被消费过了, 这个ID会保存在kafka的broker当中 而且 消 费者本地也会存储一份 因为每次消费每一条消息都要更新一下偏移量的话 难免会影响整个broker的吞吐量 所以一 般 这个偏移量在每次发生改动时 先由消费者本地改动, 默认情况下 消费者每五秒钟会提交一次改动的偏移量, 这样做虽然说吞吐量上来了, 但是可能会出现重复消费的问题: ...原创 2019-05-23 09:13:11 · 289 阅读 · 0 评论 -
消息中间件RabbitMQ-----常用应用-------(二)
1:如果从消息系统取到数据但是消费失败???存在消息丢失mq-demo项目:设置为true存在消息确认问题,//开始消费 channel.basicConsume(ConnectionUtil.QUEUE_NAME, true, deliverCallback);ready:消息准备好 unacked:消息待确认(true自动确认(感觉日...原创 2019-05-17 22:21:04 · 138 阅读 · 0 评论 -
redis-----(五)----分布式锁和缓存击穿
## 缓存击穿.热点key重建缓存问题缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力我们知道,使用缓存,如果获取不到,才会去数据库里获取。但是如果是热点 key,访问量非常的大,数据库在重建缓存的时候,会出现很多线程同时重建的情况。因为高并发导致的大量热点的 key ...原创 2019-05-30 12:23:23 · 993 阅读 · 0 评论 -
JVM调优-------(一)
jvm基本结构jvm由三部分构成:类加载子系统,运行时数据区(内存结构),执行引擎2019-05-30 21:55:11 · 127 阅读 · 0 评论 -
redis网络编程---------------epoll----------socket和网络编程
IO多路复用:epoll,poll,select传统IO一个教室50个学生老师挨个问完成了没,50遍epoll:谁写完把东西教我,就一遍 nginx,tomcatredis:单线程-------------网络编程 io模型牛逼java程序通过native方法,用jni技术调用c方法客户端与服务器端进行链接的时候有三个socket...原创 2019-05-24 20:04:37 · 388 阅读 · 0 评论 -
JVM调优-------(二)----类加载机制和jdk调优命令
类加载器的种类启动类加载器(Bootstrap ClassLoader)负责加载JRE的核心类库,如JRE目标下的rt.jar,charsets.jar等扩展类加载器(Extension ClassLoader)负责加载JRE扩展目录ext中jar类包系统类加载器(Application ClassLoader)负责加载ClassPath路径下的类包用户自定义加载器(Use...原创 2019-05-31 15:07:32 · 197 阅读 · 0 评论 -
redis-----(四)----缓存击穿
使用redis原生:n个命令时间=n次连接时间+n处理时间 使用管道:n个命令时间=1次连接时间+n处理时间## 1.Pipeline 管道注意:使用Pipeline的操作是非原子操作,虽然是一次提交过去但不是完成(原子,可以被打断)操作!!!!2.GEO---------------------GEOADD locations 116.419217 ...原创 2019-05-29 20:26:35 · 133 阅读 · 0 评论 -
消息中间件RabbitMQ和AMQS-------------------(一)
默认端口:5672,,5671消息中间件:解耦,异步AMQS:对消息协议的规定,类似http概念:Broker: 接收和分发消息的应用,我们在介绍消息中间件的时候所说的消息系统就是Message Broker。Virtual host: 出于多租户和安全因素设计的,把AMQP的基本组件划分到一个虚拟的分组中,类似于网络中 的namespace概念。当多个不同的用户使用同一个...原创 2019-05-16 23:27:23 · 1012 阅读 · 0 评论 -
redis-----(一)
主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存。单机安装:1.解压2.make如果make报错的话 大家就可以看一下是不是报没有gcc的错 如果是报没有gcc的错,那就要先安装一个gcc yum install gcc-c++安装好gcc之后最好执行一下make distclean 因为前面make...原创 2019-05-25 19:25:07 · 116 阅读 · 0 评论 -
kafka-------搭建
开发人员们在除了消息中间件以外,还想吧kafka设计为一个能够存储数据的系统,,有点像 常见的非关系型数据库,比如说NoSql等。除此之外 还希望kafka能支持持续变化,不断增长的数据流, 可以发布 和订阅数据流,还可以对于这些数据进行保存,也就是说kafka的本质 是一个数据存储平台,流平台 , 只是他在做消息发布,消息消费的时候我们可以把他当做 消息中间件来用。而且kafk...原创 2019-05-22 09:10:23 · 133 阅读 · 0 评论 -
分布式(三)--------------zookeeper
snapLog快照的日志通过zkCli.sh查看文件入口类org.apache.zookeeper.ZooKeeperMain---------内有main方法,ZooKeeperMain--->ZooKeeper---->ConnectionStringParser(包装地址)public ZooKeeper(String connectString, int sess...原创 2019-04-25 21:01:59 · 84 阅读 · 0 评论 -
分布式(二)--------------zookeeper
详细功能和客户端使用zk中的节点类型,永久,临时(不能创建子节点),持久顺序(create -s /father/s)。。。。zk每个节点默认大小(1048575)1M(1048576)#查看节点情况,看资料[zk: localhost:2181(CONNECTED) 4] get /luban1cZxid = 0xd ...原创 2019-04-22 23:01:48 · 65 阅读 · 0 评论 -
分布式(六)-------领导者选举一致性-------zookeeper----------太乱了
每台服务器:1.投票箱 2.当前自己的投票/选票(Vote类)QuorumCnxManager类final ConcurrentHashMap<Long, SendWorker> senderWorkerMap; //每台服务器对应的SenderWorker,key:serverId(myid) SenderWork final ...原创 2019-05-03 15:49:20 · 233 阅读 · 0 评论 -
分布式(四)--------------zookeeper
单机与集群服务端抛出来的事件,客户端会存在EventThread.waitingEvent队列中;监听的流程:客户端发送请求,服务端返回数据成功,然后将客户端监听加入sendThread.readResponse(incomingBuffer)-->finishPacket(packet)--->p.watchRegistration.register()q...原创 2019-04-28 21:22:35 · 76 阅读 · 0 评论 -
分布式(七)-------分布式锁和分布式配置中心-------zookeeper
1.只有一个节点并且唯一:临时顺序节点 //监听,阻塞 final CountDownLatch countDownLatch=new CountDownLatch(1); zooKeeper.exists(LOCK_NAME + "/" + preNodeName, new Watcher() { ...原创 2019-05-08 23:41:38 · 112 阅读 · 0 评论 -
分布式(五)-------集群环境数据一致性-------zookeeper
QuorumPeerConfig.parseProperties()方法if (type == LearnerType.OBSERVER){ //观察者 observers.put(Long.valueOf(sid), new QuorumServer(sid, hostname, port, electionPort, ...原创 2019-04-30 23:03:13 · 311 阅读 · 0 评论 -
Dubbo(四)-----------服务引入,服务目录----乱
从github上下载源码dubbo的消费者可以直连,或者通过注册中心连接对象:1.能够去进行远程调用(Invoker)2.是对应接口的一个实例(接口的一个代理类(Invoker))Invoker:一个服务提供者的地址多个服务提供者的地址dubbo中每一个服务提供者对应一个Invoker====> 路由策略====>服务提供者服务目录...原创 2019-05-14 20:23:59 · 169 阅读 · 0 评论 -
Dubbo (一)
github上有代码dubbo启动方式生态系统中可以更改dubbo的通信协议(http,dubbo。。。等),更改负载均衡策略。。。消费者:容错配置文件中 provider----对应-----service,consumer---对应----referencedubbo的控制台:从github中下载控制台的源码,先看旧的控制台masterdub...原创 2019-05-10 18:01:27 · 75 阅读 · 0 评论 -
消息中间件RabbitMQ-----消费端应用
1.使用springboot如何消费确认有两种方式实现:1.声明一个容器指定里面消息确认为手动,比较麻烦,但是可以动态传入队列名 2.使用注解的方式,比较方便,但是不能动态传入队列名//containerFactory的值默认beanName@RabbitListener(queues = "testQueue",containerFactory = "simpleRabbit...原创 2019-05-21 09:17:48 · 134 阅读 · 0 评论 -
Dubbo(二)-----------可扩展机制-----SPI
文档:http://dubbo.apache.org/zh-cn/docs/dev/SPI.htmlsubscribe:订阅本地注册:我注册的接口和实现类dubbo:有三个概念URL:统一资源定位器(简单理解为总线) dubbo中服务,注册中心,消费者,配置信息。。。都是资源Invoke:可执行体 提供方:用于调用服务提供类 ...原创 2019-05-11 21:06:46 · 103 阅读 · 0 评论 -
消息中间件RabbitMQ-----高可用
1.虚拟机安装centos没有配置DNS会引起的问题yum命令ssh命令等不能进行,参考https://blog.csdn.net/jasonhector/article/details/786575322.yum安装net-tools: yum install net-tools安装完成后需要添加用户才可以访问管理台页面rabbitmq集群分为:镜像模式和普通...原创 2019-05-21 17:51:04 · 141 阅读 · 0 评论 -
JVM调优-------(四)
调优参数:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html查看gc日志:调优工具:https://gceasy.io/index.jsp减少fullGC次数,然后查看fullGC原因...原创 2019-06-03 20:14:44 · 164 阅读 · 0 评论