Docker Compose

SpringBoot2.x与MongoDB集成(十)

隐身守侯 提交于 2020-08-07 03:21:48
SpringBoot2.x与MongoDB集成(十) 准备工作 介绍MongoDB与Spring Boo集成,并通过 MongoRepository 以及 MongoTemplate 来执行CRUD操作。 Spring Boot:2.3.0.RELEASE Spring Boot Data MongoDB:2.3.0.RELEASE MongoDB:4.2.6 MongoDB Driver:4.0.3 要操作的集合示例数据结构(即model) Department: String id String name String description Array employees Employee: String empId String name int age double salary one to many relationships 安装MongoDB MongoDB快速入门指南与docker-compose快体验 https://www.yuque.com/ekko/database/dkluyg 创建Spring Boot项目 SpringBoot2.x快速入门指南(一) https://www.yuque.com/ekko/spring/qqt7xd 添加Mongo依赖 <dependency> <groupId>org.springframework.boot<

分布式 ID 解决方案之美团 Leaf

时光毁灭记忆、已成空白 提交于 2020-08-06 20:51:13
分布式 ID 在庞大复杂的分布式系统中,通常需要对海量数据进行唯一标识,随着数据日渐增长,对数据分库分表以后需要有一个唯一 ID 来标识一条数据,而数据库的自增 ID 显然不能满足需求,此时就需要有一个能够生成全局唯一 ID 的系统,需要满足以下条件: 全局唯一性:最基本的要求就是不能出现重复的 ID。 递增:保证下一个 ID 一定大于上一个 ID。 信息安全:如果 ID 是连续的,用户就可以按照顺序进行恶意爬取数据,所以 ID 生成无规则。 上述的 2 和 3 点需求是互斥的,无法使用同一个方案满足。 解决方案 数据库生成 以 MySQL 为例,利用给字段设置 auto_increment_increment 和 auto_increment_offset 来实现 ID 自增。每次业务可以使用下列 SQL 进行读写得到 ID: begin; REPLACE INTO Tickets64 (stub) VALUES ('a'); SELECT LAST_INSERT_ID(); commit; 优点:使用非常简单,ID 单调递增。 缺点:非常依赖数据库,当数据库异常时则整个系统不可用。 UUID 优点:本地生成,没有网络消耗,性能高。 缺点:过长不易于存储;造成信息不安全,基于 MAC 地址生成可能会造成 MAC 地址泄露。 Snowflake Snowflake (雪花算法)是由

docker配置搭建elasticsearch集群

北城余情 提交于 2020-08-06 17:14:28
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

docker配置搭建elasticsearch集群

岁酱吖の 提交于 2020-08-06 17:06:10
一、es集群的配置搭建 准备三台服务器:192.168.81.130、192.168.81.131、192.168.81.132 1、修改每台主机的内核参数vm.max_map_count 编辑/etc/sysctl.conf vm.max_map_count = 655350 然后执行sysctl -p 2、将es镜像pull下来,本文采用elasticsearch:7.1.1 3、编辑docker-compose.yaml文件 version: ' 3 ' services: elasticsearch: # 服务名称 image: elasticsearch: 7.1 . 1 # 使用的镜像 container_name: elasticsearch # 容器名称 restart: always # 失败自动重启策略 environment: - node.name=node- 130 # 节点名称,集群模式下每个节点名称唯一 - network.publish_host= 192.168 . 81.130 # 用于集群内各机器间通信,对外使用,其他机器访问本机器的es服务,一般为本机宿主机IP - network.host= 0.0 . 0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0. 0.0 . 0 ,即本机 - discovery.seed

我如何进入Docker容器的shell?

走远了吗. 提交于 2020-08-06 03:15:28
问题: I'm getting started working with Docker. 我开始使用Docker了。 I'm using the WordPress base image and docker-compose. 我正在使用WordPress基本图像和docker-compose。 I'm trying to ssh into one of the containers to inspect the files/directories that were created during the initial build. 我正在尝试ssh到其中一个容器中来检查在初始构建期间创建的文件/目录。 I tried to run docker-compose run containername ls -la , but that didn't do anything. 我试图运行 docker-compose run containername ls -la ,但是没有做任何事情。 Even if it did, I'd rather have a console where I can traverse the directory structure, rather than run a single command. 即使它确实如此,我宁愿有一个控制台,我可以遍历目录结构

ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(二)

喜你入骨 提交于 2020-08-06 03:03:32
在 上文中 我介绍了ASP.NET Core应用程序容器化时需要注意的几个问题,并给出了一个案例应用程序: tasklist 。今天接着上文的内容,继续了解一下如何使用Azure DevOps进行ASP.NET Core应用程序的持续集成。为了便于讨论,本文会将持续集成(Continuous Integration)缩写为CI,而将持续部署(Continuous Deployment)缩写为CD。 Azure DevOps前身是Visual Studio Team Services(VSTS),从2018年9月10日开始,VSTS改名为Azure DevOps,原来VSTS所提供的服务也作了相应的调整。有关Azure DevOps的介绍,可以参考 https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ 。 容器化应用程序的CI/CD流程 下图展示了基于微软技术架构的容器化应用程序的CI/CD流程: 大致流程如下: 开发人员通过Visual Studio Team Services Backlog(也就是最新的Azure Boards)获取一些开发任务 开发人员使用Visual Studio进行应用程序开发 开发的代码保存在Visual Studio Team Services Git(也就是最新的Azure

.Net(c#)使用 Kafka 小结

六月ゝ 毕业季﹏ 提交于 2020-08-05 13:51:05
.Net(c#)使用 Kafka 小结 1.开篇 由于项目中必须使用 kafka 来作为消息组件,所以使用 kafka 有一段时间了。不得不感叹 kafka 是一个相当优秀的消息系统。下面直接对使用过程做一总结,希望对大家有用。 1.1.kafka 部署 kafka 的简单搭建我们使用 docker 进行,方便快捷单节点。生产环境不推荐这样的单节点 kafka 部署。 1.1.1.确保安装了 docker 和 docker-compose 网上很多教程,安装也简单,不作为重点赘述。 1.1.2.编写 docker-compose.yml 将以下内容直接复制到新建空文件 docker-compose.yml 中。 version: "3" services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka depends_on: [zookeeper] ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: localhost KAFKA_CREATE_TOPICS: "test" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes:

super-graph 核心代码说明

北慕城南 提交于 2020-08-05 10:37:42
内容来自官方文档,主要介绍下super-graph 的工具原理,对于学习源码还是比较有帮助的 主要的子模块 qcode, 处理graphql 语言以及解析的 psql sql 生成器 serv http 服务,配置以及cli rails rails cookies && session 存储解码器 组件说明 qcode 主要处理grapql 的解析以及转换,通过 func NewCompiler(c Config) 创建,注意qcode 不关心数据库结构 核心是处理graphql 的解析 核心代码: const ( opQuery opMutate ... ) type QCode struct { Type QType Selects [] Select ... } type Select struct { ID int32 ParentID int32 Args map[ string] * Node Name string FieldName string Cols [] Column Where * Exp OrderBy [] * OrderBy DistinctOn [] string Paging Paging Children [] int32 Functions bool Allowed map[ string] struct{} PresetMap map[

grafana 7.0 支持分布式追踪框架的dashboard 展示

橙三吉。 提交于 2020-08-05 10:34:22
grafana 7.0 最近发布了,添加了对于分布式追踪(opentracing)的展示支持,同时界面ui也有调整 以下是一个简单的试用 环境准备 docker-compose 文件 version: "3" services: grafana: image: grafana / grafana: 7.0.0 ports: - "3000:3000" jaeger: image: jaegertracing / all - in - one: 1.18 environment: - "COLLECTOR_ZIPKIN_HTTP_PORT=9411" ports: - "9411:9411" - "5775:5775/udp" - "6831:6831/udp" - "6832:6832/udp" - "16686:16686" 配置 demo 项目 clone 代码 git clone https: //github.com/luoyjx/opentracing-demos.git 运行 参考node 项目运行就可以了,注意部分端口需要修改不然会有冲突的问题 查询效果 说明 grafana 的功能是越来越强大了,我们可以基于分布式追踪以及prometheus metrics 实现一个比较统一的dahsboard监控系统 参考资料 https://grafana.com/blog

ASP.NET Core中Ocelot的使用:基于服务发现的负载均衡

て烟熏妆下的殇ゞ 提交于 2020-08-04 23:27:57
本系列相关文章: 《ASP.NET Core中Ocelot的使用:API网关的应用》 《ASP.NET Core中Ocelot的使用:基于Spring Clound Netflix Eureka的动态路由》 本文将基于前两篇文章所述内容,继续介绍如何在服务发现和动态路由的基础上,使用Ocelot实现负载均衡。Ocelot本身是带有负载均衡功能的,这一点其实跟Nginx提供的 HTTP load balancer 是类似的功能(我觉得整个Ocelot提供的功能,通过Nginx也都可以实现,不过Ocelot更加.NET化,对于.NET开发人员来说更为简单和容易接受)。根据官方文档,Ocelot支持如下几种负载均衡策略: LeastConnection:根据服务当前正在处理的请求个数来决定将使用哪个服务来处理新接收到的请求,将请求转发给当前连接数最少的服务 RoundRobin:经典模式,轮询法,逐个选择可用的服务来处理接收到的请求 NoLoadBalancer:仅使用第一个可用的服务来处理接收到的请求 CookieStickySessions:通过使用Cookie,确保特定的请求能够被分配到特定的服务上进行处理 今天我们选择RoundRobin来看看如何基于服务发现来实现负载均衡。同样,首先需要对架构进行调整。 调整架构 与上文中的架构相比,这里不会引入新的服务