Java
yanmei_yaomy
生活总是充满了变故,在每一个转弯的路口,我们都是那么的彷徨
展开
-
Spring Cloud(三) Eureka 微服务的注册和发现
一.微服务架构服务提供者、服务消费者、服务发现组件这三者之间的关系:各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息。 服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口。 各个微服务与服务发现组件使用一定机制(例如心跳)通信。服务发现组件如长时间无法与某微服务实例通信,就会注销该实例。 微服务网络地址变...原创 2019-04-29 19:32:36 · 133 阅读 · 0 评论 -
设计模式——原型模式
原型模式(prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要应用场景为克隆。克隆分为浅克隆和深克隆两种。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。下面实现个浅拷贝的demo。public class ConcretePrototype implements Cloneable{ privat...原创 2019-06-12 08:33:58 · 126 阅读 · 0 评论 -
设计模式——策略模式
简介策略模式,它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意...原创 2019-06-11 21:06:30 · 146 阅读 · 0 评论 -
(转)设计模式——委派模式
简介委派模式不属于GOF23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色.实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.委派模式对外隐藏了具体实现, 仅将委派者角色暴露给外部, 如Spring的Dis...转载 2019-06-11 20:31:31 · 103 阅读 · 0 评论 -
设计模式——工厂模式
简介工厂模式是用工厂方法代替new操作的一种模式。它隐藏了复杂的逻辑过程,只关心执行结果。工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式三种。简单工厂模式工厂类实现代码为:class OperationFactory { public static Operation createOperate(string Operate) { Operat...原创 2019-06-11 06:38:31 · 93 阅读 · 0 评论 -
设计模式——代理模式
简介代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问。代理模式一般具有以下三个特点:1) 需要具有两个角色,执行者与被代理人; 2)对于被代理人来说,这件事情是一定要做的,但是我自己又不想做或者没有时间做,找代理 ; 3)需要获取到被代理的人个人资料;代理模式,归根到底做的是字节码重组。它可以在每一个方法调用之前加一些代码,在方法调用之后再加一些代码。UM...原创 2019-06-04 17:00:54 · 80 阅读 · 0 评论 -
设计模式——单例模式
介绍单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。Singleton类,定义一个GetInstance操作,允许客户访问它的唯一实例。GetI...原创 2019-06-10 08:42:57 · 126 阅读 · 0 评论 -
maven profile及archetype的简单使用
profile简介使用profile可以实现代码在不同的场景下的自动切换。如我们平常常见的dev/test/pro三套环境的不同切换。下面的demo,配置了三套环境变量,dev/test/pro,通过maven profile的形式实现环境变量间的切换。demo首先,我们在项目resources下建立三套环境变量 pom文件中配置profile 执行命令实现profile间切...原创 2019-05-18 07:27:12 · 508 阅读 · 0 评论 -
maven 自定义插件开发及使用
mave自定义插件介绍本文采用maven自定义插件实现了解决html引入css、js缓存的问题。问题解决思路为扫描路径下的html文件,并将html文件中引入的css、js路径后缀加入版本号的方案。如将https://code.jquery.com/jquery-3.2.1.slim.min.js变更为https://code.jquery.com/jquery-3.2.1.slim.mi...原创 2019-05-18 06:55:22 · 1737 阅读 · 1 评论 -
Windows下Git多账号配置,同一电脑多个ssh-key的管理
简介一般情况下,大家在公司都有自己公司的代码仓库地址,而我们自己又有自己的github账号。如果不进行配置,每次在提交时,都需要输入用户名和密码,非常的繁琐。下面整理一篇git多账号配置的文章。本文以github地址和公司代码仓库地址为例。github上的用户名为githubuser,公司用户名为companyuser。具体设置步骤如下:1)切换到.ssh文件目录(win7没有.ssh...原创 2019-05-26 06:24:41 · 241 阅读 · 0 评论 -
Spring Cloud(八)分布式消息总线
消息总线的定义消息总线是一种通信工具,可以在机器之间互相传输消息、文件等,他扮演着一种消息路由的角色,拥有一套完备的路由机制来决定消息传输方向。发送端只需要向消息总线发出消息,而不用管消息被如何转发。Spring Cloud Bus通过轻量消息代理连接各个分布的节点。管理和传输所有分布式项目中的消息,本质是利用了MQ的广播机制在分布式的系统中传输消息,目前常用的有Kafka和RabbitM...原创 2019-05-10 15:49:11 · 1062 阅读 · 0 评论 -
Spring Cloud(七)熔断机制
服务熔断简介服务熔断也称服务隔离或者过载保护。在微服务应用中,服务存在一定的依赖关系,形成一定的依赖链。如果某个目标服务调用慢或者有大量超时,造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。此时,对该服务的调用执行熔断,对于后续请求,不再继续调用该目标服务,而是直接返回,从而可以快速释放资源。等到目标服务情况好转后,则可恢复其调...原创 2019-05-10 13:06:59 · 737 阅读 · 0 评论 -
Spring Cloud(五) 服务网关zuul
Zuul简介Zuul是Netflix公司开源的一个API网关组件,提供了认证、鉴权、限流、动态路由、监控、弹性、安全、负载均衡、协助单点压测、静态响应等边缘服务的框架。Zuul的基本功能如下:验证与安全保障:识别面向各类资源的验证要求并拒绝那些与要求不符的请求。 审查与监控:在边缘位置追踪有意义的数据及统计结果,从而为用户带来准确的生产状态结论。 动态路由:以动态方式根据需要将请求...原创 2019-05-07 18:19:54 · 310 阅读 · 0 评论 -
Spring Cloud(六)Config配置中心
简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。Spring Cloud Config致力于为分布式系统中的外部化配置提供支持,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。...原创 2019-05-10 08:46:40 · 119 阅读 · 0 评论 -
Spring Cloud(二) 框架搭建前准备
为了对Spring Cloud框架中的组件进行说明,我们先准备一个微服务系统(该例子来源于Spring Cloud微服务架构开发实战一书))。整个系统可以分为天气数据采集微服务、天气数据API微服务、城市数据API微服务、天气预报微服务四个微服务。其中,每个微服务又可以由不同的组件组成,其中:天气数据采集微服务包含数据采集组件、数据存储组件。数据采集组件是通用的用于采集天气数据的组件。数据存储...原创 2019-04-25 09:01:06 · 167 阅读 · 0 评论 -
Spring Cloud(四) 微服务的消费
微服务的消费模式1.1服务直连模式服务直连模式就是直接通过URL去访问想要的资源。如我们直接通过URL访问某个网页,又如在我们的天气预报例子中,通过Restful API服务去获取某城市的天气信息。String uri = "http://127.0.0.1:8082/weather/cityId/" + cityId;ResponseEntity<String> r...原创 2019-05-06 18:06:42 · 145 阅读 · 0 评论 -
Spring Cloud(一)微服务介绍
Spring Cloud框架介绍 以下是来自官方的一篇简单介绍:Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery,...原创 2019-04-24 11:29:25 · 153 阅读 · 0 评论 -
设计模式——模板方法模式
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。abstrac...原创 2019-06-12 09:12:02 · 108 阅读 · 0 评论