【微服务】
文章平均质量分 96
YangzaiLeHeHe
踏六卷,乘风,独饮四方水!
展开
-
Kafka及控制台【后台管理界面】部署
一、下载kafkakafka下载传送门镜像门二、启动zk集群kafka使用zookeeper来管理broker和consumer1、 启动zk集群三、启动kafka1、修改配置文件zookeeper.connect=localhost:2181,localhost:2182,localhost:2183,localhost:2184log.dirs=./logs2、启动kafka启动命令.\kafka-server-start.bat D:\tools\ka原创 2020-09-22 14:28:16 · 11762 阅读 · 0 评论 -
Windows环境搭建Zookeeper伪集群
文章目录Windows环境搭建Zookeeper伪集群一、准备Java环境二、准备zk安装包三、配置环境变量四、修改config五、启动六、伪集群改造1、tips2、改造方案13、改造方案2A 复制多份zkServerB 复制多份zkCliC 复制多份zoo.cfgD 复制多份data目录并指定myIdE 复制多份log目录七、伪集群启动八、真集群怎么搞Windows环境搭建Zookeeper伪集群部署zk首先要有java环境【因为zk是用java编写的,zk的运行需要依赖于Java环境】。一、准原创 2020-09-22 10:49:00 · 459 阅读 · 0 评论 -
分布式系统基础知识(二)
一、一致性(以数据为中心):一致性模型实质是进程和数据存储之间的一个约定,在没有全局时钟的情况下,在执行读操作要返回最后一次写操作之后的结果,是十分困难的。1、严格一致性:任意读操作都要读到最新写结果。依赖于绝对的全局时钟,分布式系统中实现这种模型代价过大,实际系统运用有限基本不能做到。2、持续一致性:3、顺序一致性4、因果一致性5、入口一致性二、一致性(以客户为中...原创 2019-07-08 11:09:14 · 474 阅读 · 0 评论 -
RocketMQ最佳实践
一、Producer最佳实践1、一个应用尽可能用一个Topic,消息子类型用Tags来标识,tags可以由应用自由设置。只有发送消息设置了tags,消费方在订阅消息时,才可以利用tags在broker中做消息过滤,例如:message.setTags(”TagMsg“);2、每个消息在业务层面的唯一标识码,要设置到keys字段,方便将来定位消息丢失问题,由于是哈希索引,请务必保证key尽可...原创 2019-07-08 18:10:04 · 884 阅读 · 0 评论 -
搭建RocketMQ运行环境
零、准备首先从github上将项目拉取下来:RocketMQ链接使用Idea的VCS的git将项目Clone下来。一、启动NameServer启动该类时会提示我们没有ROCKETMQ_HOME所以我们需要配合环境变量。配置完成之后我们需要在环境变量(就是我们clone下来的文件存放路径【自己也可以新建一个目录来作为环境变量测试可以成功】)所在的目录下新建下图...原创 2019-07-09 16:11:23 · 379 阅读 · 0 评论 -
RocketMQ消息发送【Producer】
RocketMQ发送普通消息有三种方式:可靠同步发送、可靠异步发送、单向发送【OneWay】。[RocketMQ消息结构-消息生产者启动流程-消息发送流程-批量消息发送]一、RocketMQ消息发送支持三种发送方式:同步、异步、单向。RocketMQ消息发送需要考虑的几个问题:消息队列如何进行负载、消息发送如何实现高可用、批量消息发送如何实现一致性。二、RocketMQ消息-M...原创 2019-07-11 10:46:15 · 2195 阅读 · 0 评论 -
RocketMQ路由中心【NameServer】
NameServer主要提供路由管理、服务注册、及服务发现的机制。一、NameServer架构设计消息中间件的设计思路一般基于主题的订阅发布机制。消息生产者发送某一主题的消息到消息服务器,消息服务器负责该消息的持久化存储,消息消费者订阅感兴趣的主题,消息服务器根据订阅信息【路由信息】将消息推送到消费者【PUSH模式】或者消息消费者主动向消息服务器拉取消息【PULL消息】从而实现消息生产者与...原创 2019-07-11 10:47:38 · 553 阅读 · 0 评论 -
RocketMQ消息存储
RocketMQ主要存储文件包含消息文件(commitLog)、消息消费队列文件(consume-queue)、Hash索引文件(IndexFile)、检测点文件(checkpoint)、abort(关闭异常文件)、单个消息存储文件、消息消费队列文件、Hash索引文件长度固定以便使用内存映射机制进行文件的读写操作。RocketMQ组织文件以文件的起始偏移量来命名文件,这样根据偏移量能快速的定位到真...原创 2019-07-15 18:09:22 · 2437 阅读 · 0 评论 -
Dubbo面试你问我答
文章目录一、Dubbo是用来干什么的?二、Dubbo能做什么?三、谈一下你对Dubbo的理解【架构层次】四、谈一下你对Dubbo的理解【框架设计层次】五、了解Dubbo负载均衡策略吗?一、Dubbo是用来干什么的?首先:随着互联网的发展,网站应用的规模不断扩大演变过程如下:单一应用架构【此时数据访问ORM框架较重要】垂直应用架构【加速前端页面开发的Web框架(MVC)较重要】分...原创 2019-08-06 13:27:59 · 315 阅读 · 0 评论 -
分布式系统基础知识(一)
一、什么是分布式系统1、分布式系统是:若干独立计算机的组合,这些计算机对于用户来说就像单个相关系统。意思就是说硬件独立、软件统一。硬件独立:计算机机器本身是独立的,一个大型的分布式系统,会由若干台计算机来组成系统的基础设施。软件统一:对于用户来说就像是和单个系统打交道。2、分布式系统设计需要注意的问题:如何将系统拆分为子系统?如何规划子系统间的通信?如何考虑...原创 2019-07-04 16:45:26 · 654 阅读 · 0 评论 -
Redis集群搭建【超详细】
一、基本环境首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后 下载自己的linux镜像文件,在虚拟机上安装linux系统,vm15和centos7下载传送门 提取码: lvb5 。我使用的是centos7 64,大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。二、准备相关软件安装包...原创 2019-06-25 16:30:04 · 53946 阅读 · 6 评论 -
Tomcat浅析
一、相关Applet-客户端小程序|Servlet-(Server Applet)服务端小程序:需要将html硬编码在java代码中然后将代码放在jvm中运行之后将运行结果返回给前端(因为jvm无法直接处理如CGI相关的协议需要使用servlet进行过渡一下)。那么我们需要通过servlet交互那么就要遵循servlet协议Servlet Container 是一种基于Servlet协议 ...原创 2019-06-18 16:57:15 · 257 阅读 · 0 评论 -
Dubbo-支持的通信协议
首先Dubbo基于SPI(Service Provider Interface)服务发现机制加载自定义的所有组件,大致实现思路-如:在Protocol接口上添加@SPI注解 -@SPI("dubbo"),然后我们需要在META-INF下面dubbo/internal添加com.alibaba.dubbo.rpc.Protocol文件,里面就是我们对于Protocol接口的所有自定义组件的实现。...原创 2019-05-21 16:45:19 · 674 阅读 · 0 评论 -
Dubbo-SPI机制
一、Java的SPI机制通过一个简单的例子来了解一下Java的SPI机制:1、写了一个接口。package com.common.study;import com.alibaba.dubbo.common.extension.SPI;/** * @Interface DubboJavaRoot * @Description TODO * @Author xuyang7...原创 2019-05-22 19:53:44 · 294 阅读 · 0 评论 -
Dubbo-双检查锁
首先看一下类的初始化条件:T是一个类,而且一个T类型的实例被创建; T是一个类,且T中声明的一个静态方法被调用; T中声明的一个静态字段被赋值; T中声明的一个静态字段被使用,而且这个字段不是一个常量字段; T是一个顶级类(top level class,见java语言规范的§7.6),而且一个断言语句嵌套在T内部被执行。静态内部类实现单例, 在调用getInstance()方法时...原创 2019-05-24 09:59:52 · 498 阅读 · 0 评论 -
Dubbo-加载初始化
首先我们在SpringBoot的yaml文件中会有如下配置:上面配置的是dubbo使用的协议,由于dubbo建议我们使用dubbo协议,所以配置如上。Springboot加载的时候回读取yam文件,然后找到具体的实现类这时会用到ExtensionLoader<T> getExtensionLoader(Class<T> type) 方法。加载第一步:如下...原创 2019-05-24 14:36:54 · 484 阅读 · 0 评论 -
Dubbo-负载均衡
一、什么是负载均衡LoadBalance 即负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。二、负载均衡分类负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中,一般很难接触到硬...原创 2019-05-28 10:23:17 · 623 阅读 · 0 评论 -
Dubbo-实现简单思路
首先Dubbo是基于RPC原理实现的。一、RPC就是远程调用服务。我们像调用本地服务一样调用远程服务,@Servicepublic class ServiceImpl implements Service { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceImpl.class);...原创 2019-05-29 11:46:19 · 337 阅读 · 0 评论 -
Redis
一、使用缓存的好处一般情况在客户端和存储层之间都会有一层缓存层,当发送请求的时候会先去缓存层查找,如果找到则直接返回,如果没有找到,就会发生缓存穿透(就是缓存层没有穿过缓存层去查数据库),如果在存储层找到数据,则会将数据回写到缓存层,以便客户端下次请求同样数据的时候可以从缓存中找到,还可以实现熔断机制(就是当我们发现存储层挂掉或者没办法提供服务的时候可以让客户端的请求直接打在缓存层上不管有没有...原创 2019-06-18 09:32:43 · 309 阅读 · 0 评论 -
Dubbo-基于Spring开发(自定义标签及解析)
首先dubbo实现Spring注入bean的方式思路如下:Spring的自定义标签解析是通过,写一个继承自NamespaceHandlerSupport的类,并实现init()方法,在init()方法中,去注册解析器。然后在解析xml时,通过约定的key去Map中拿到相应的解析器进行解析。大致思路就是这样。对应的设计模式为:接口-适配器模式、抽象工厂模式、策略模式及模板方法模式一、Dubb...原创 2019-05-20 17:41:12 · 464 阅读 · 0 评论