- 浏览: 194407 次
- 性别:
- 来自: 南京
最新评论
文章列表
本文主要翻译自Docker Reference Architecture: Universal Control Plane 2.0 Service Discovery and Load Balancing
1.介绍
服务发现组件用来注册一个服务,并发布此服务的连接信息从而使其他服务知道如何连接到它。当应用转向微服务结构或者是面向服务的架构时,服务发现已经变成分布式系统必不可少的一部分,也增加了操作这些环境的复杂性。
DockerEE、DockerCS 引擎通过直接包含服务发现和负载均衡机制来提升使用它的组织执行devops的积极性,并且使开发能动态的发现其他服务的应用变得简单,通 ...
参考地址 registry delete
registry版本2.0
1.registry启动时环境变量追加 REGISTRY_STORAGE_DELETE_ENABLED=true
docker run --name registry -e REGISTRY_DELTET_ENABLED=true -e REGISTRY_STORAGE_DELETE_ENABLED=true -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry -d -p 5000:5000 -v /data/registry/data:/va ...
maven作为一个核心是插件的架构,所有的工作都通过插件来执行,主要分为两类build和report
Build plugins:在build阶段执行,在pom中必须配置在<build/>标签里面
Reporting plugins:在生成site阶段执行,在pom中配置在<reporting/>标签里面。
maven官方已经给我们提供了各种各样的插件maven plugins,但有时我们还是需要自己定义我们特殊的插件,比如我们项目中根据特定的文件,自动生成对应的java类,这时就需要我们实现自己的特定插件了,本示例包含两个工程,
插件工程:maven-plugin ...
什么是zuul
在微服务架构中,如何把拆分好的大量微服务服务对外提供统一的访问接口,从而将APP的具体实现细节对使用透明化是一个共同的挑战,Netflix zuul可以完美的解决这个问题。可以把它看做是微服务架构的门户,把请求代理到对应的后台应用,能够使浏览器、手机APP、或者是应用接口访问分布在不同主机的服务而不用考虑跨域访问问题( CORS)。zuul能够和其他的Netflix组件结合使用,如Hystrix一起提供熔断机制,利用Eureka做服务发现,也能够用来做路由过滤,负载均衡等。
应用
1. API网关模式
特点
通过增加API网关使得客户端和具体的实现隔离开来
客户端不 ...
一、简述
随着系统的运行,每个docker容器都会产生大量的日志,如果不做清理对系统磁盘将是一个很大的压力,特别是当系统日志已经利用elk工具栈做过分析存储后,磁盘上的日志就更没有存在的必要性。
因为默认情况下,每个docker容器的日志文件都配置的是大小不限,一个容器一个日志文件,当日志文件过大时,利用docker logs -f 查看时会直接将dokcer daemon 阻塞住,造成docker ps等命令也不响应,所以很有必要保证日志文件只保留一定大小的内容。
docker容器日志的位置,可以用以下命令查看哪
docker inspect containerId | gre ...
参照Spring Cloud Netflix Eureka - The Hidden Manual
一、基础架构
1.Eureka 包含server和client两个基本组件,以下摘自Netflix的描述
引用
Eureka 提供两种组件,一是基于REST形式,用来提供负载均衡和中间层服务故障转移的Eureka server;二是一个基于Java的客户端,可以用来更好的server交互,Eureka client包含一个內建的基于round-robin(轮询)的负载均衡策略。
2.每一个Eureka client应用被称作一个instance。Eureka client应用和Eure ...
一、什么是spring cloud config
1.Spring Cloud Config的作用
在微服务架构系统中,有大量的应用分布在不同机器或容器中运行,如何方便统一的管理这些应用的配置信息是一个不小的挑战,spring cloud config就是用来解决这个问题的.spring cloud config同时包含服务端和客户端支持,其中服务端对应一个配置中心来管理所有应用的外部配置,客户端通过服务端来从配置中心获取自己应用对应的配置信息。无论是服务端还是配置端主要的原理都是把配置信息映射到Environment 和 PropertySource,所以spring cloud co ...
Ribbon提供一种客户端的负载均衡技术,实现和集群中的服务通信。包含了三种组件
Rule 一个逻辑组件用来确定从服务列表中获取哪一个服务
Ping 运行在后台的组件,用来确定服务是否可用
ServerList 一个后台线程,可以以特定的频率来刷新和过滤服务,可以是静态的也可以是动态的
这些组件既可以通过API方式设定,也可以在配置文件中设定在通过反射方式创建。
1.Common rules
RoundRobinRule 这个策略通过简单的轮询策略来选择服务,常常作为默认策略或者是高级策略的后备策略使用
AvailabilityFilteringRule 这个策略将跳过那些被认为路由断 ...
一、简介
在微服务架构中服务发现是一个非常核心的功能。在spring cloud中可以很方便集成Netflix Service Discovery组件eureka。Eureka包含server和client,其中server端能够以群集的形式提供,各个sever又可以通过同步其他server中注册的service状态来实现高可用性。
当一个Eureka client向server注册时,会提供自身的元数据信息,包括host、port、health check URI等信息,Eureka server通过侦听同一个service的不同实例的心跳信息来确定当前实例是否正常,如果心跳信息失败,就会自动 ...
1.配置文件类
package chengf.spring.boot.config.test;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Hello world!
*
*/
@ConfigurationProperties
public class AppBootConfig {
private String name;
private int age;
public String getName() {
return ...
Standard SQL Data Types with Their Java Equivalents
SQL type Java Type Description
BINARY byte[] Byte array. Used for binary large objects.
BIT boolean Boolean 0 / 1 value
CHAR Strin ...
本文介绍利用docker、docker gitlab/gitlab-ce、docker Jenkins 来实现CI环境
1.安装docker 参照docker install
2.安装gitlab参照docker gitlab install
3.安装Jenkins参照docker jenkins install
4.在Jenkins中配置自己的项目
在Jenkins中创建新的item
在Jenkins配置项目源码路径
所选Credentials必须有访问gitlab上对应工程的权限。
在Jenkins配置自动执行策略(触发器),我们想配置成每次gitlab上项目有提交、 ...
本编文章是对Spring利用@Value来直接注入properties文件中属性的简单记录
1.整体目录结构如下
2.pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0. ...
1.安装docker
2.安装docker-compose
3.创建目录/home/chengf/jenkins
4.创建数据卷
docker volume create --name jenkins_data
5.在docker host主机上下载安装JDK1.8,如果是maven项目还需要下载安装maven
6.安装启动Jenkins
docker run --name chengf_jenkins -d -p 8080:8080 ...
系统 ubuntu 16.04l
1.安装 docker
2.安装 docker-compose
3.新创建目录/home/user/docker-compose/gitlab
4.在新创建目录下创建docker-compose.yml
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: '192.168.0.105'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.105:90 ...