数据与中间件 文章

使用Docker部署Apollo一个环境docker-quick-start版
数据与中间件
2020-04-05 0k

使用Docker部署Apollo一个环境docker-quick-start版

1、下载Apollo源码 git clone https://github.com/ctripcorp/apollo.git 2、进入docker-quick-start 目录 cd apollo/scripts/docker-quick-start 3、安装启动 docker-compose up 看到下面日志表示已经安装成功 apollo-quick-start | Waiting for config service startup..... apollo-quick-start | Config service started. You may visit http://localhost:8080 for service status now! apollo-quick-start | Waiting for admin service startup. apollo-quick-start | Admin service started apollo-quick-start | ==== starting portal ==== apollo-quick-start | Portal logging file is ./portal/apollo-portal.log apollo-quick-start | Started [237] apollo-quick-start | Waiting for portal startup..... apollo-quick-start | Portal started.

apollo docker 配置中心
阅读更多
使用Docker部署Apollo多个环境在一台(Linux)服务器
数据与中间件
2020-04-05 0k

使用Docker部署Apollo多个环境在一台(Linux)服务器

一、搭建MySql 1、拉取官方镜像 (我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版) docker pull mysql:5.7 # 拉取 mysql 5.7 docker pull mysql # 拉取最新版mysql镜像 docker images # 检查是否拉取成功 2、运行镜像 docker run -p 23306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 参数说明: –name:容器名,此处命名为mysql -e:配置信息,此处配置mysql的root用户的登陆密码 -p:端口映射,此处映射 主机23306端口 到 容器的3306端口 3、创建数据库 根据\apollo\scripts\sql目录下的两个脚本 创建三个数据库 ApolloConfigDBPro : apolloconfigdb.sql ApolloConfigDBDev : apolloconfigdb.sql ApolloPortalDB : apolloportaldb.sql 4、修改值 修改 ApolloPortalDB库中ServerConfig表apollo.portal.envs的值为dev,pro 修改 ApolloConfigDBPro库中ServerConfig表eureka.service.url的值 为http://localhost:8083/eureka/ 二、搭建Apollo 拉取镜像 docker pull idoop/docker-apollo 运行容器 注意 “=” 附近不能有空格 docker run --net="host" --name myapollo -d \ -e PORTAL_DB='jdbc:mysql://192.

apollo docker 配置中心
阅读更多
DotNet Framework 类库 自带的缓存 HttpRuntime.Cache HttpContext.Cache
数据与中间件
2017-03-11 0k

DotNet Framework 类库 自带的缓存 HttpRuntime.Cache HttpContext.Cache

系统自带两个cache类 在.NET运用中经常用到缓存(Cache)对象。有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的,而HttpContext.Current.Cache是针对当前WEB上下文定义的。HttpRuntime下的除了WEB中可以使用外,非WEB程序也可以使用。 HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。 HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。 综上所属,在可以的条件,尽量用 HttpRuntime.Cache ,而不是用 HttpContext.Cache 。 缓存数据规则 数据可能会被频繁的被使用,这种数据可以缓存。 数据的使用频率不高,但 生存周期很长,这样的数据也可以加入缓存。 封装Helper /* * 日期:2016-06-27 */ using System; using System.Web; using System.Collections; public class CacheHelper { /**/ /// <summary> /// 获取数据缓存 /// </summary> /// <param name="CacheKey">键</param> public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.

dotnet 缓存 缓存机制
阅读更多
如何用好消息队列RabbitMQ?
数据与中间件
2017-03-11 0k

如何用好消息队列RabbitMQ?

一、RabbitMQ 简介 RabbitMQ 是基于 AMQP 实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的 Erlang 语言写成。 其中,AMQP(Advanced Message Queuing Protocol,即高级消息队列协议),是一个异步消息传递所使用的应用层协议规范,为面向消息的中间件设计。 二、为什么要用消息队列 MQ 1、业务系统往往要求响应能力特别强,能够起到削峰填谷的作用。 2、解耦:如果一个系统挂了,则不会影响另外个系统的继续运行。 3、业务系统往往有对消息的高可靠要求,以及有对复杂功能如 Ack 的要求。 4、增强业务系统的异步处理能力,减少甚至几乎不可能出现并发现象: 使用消息队列,就好比为了防汛而建葛洲坝,有大量数据的堆积能力,然后可靠地进行异步输出。例如: 传统做法存在如下问题,请见上图: 1、一旦业务处理时间超过了定时器时间间隔,就会导致漏单。 2、如果采用新开线程的方式获取数据,那么由于大量新开线程处理,会容易造成服务器宕机。 3、数据库压力大,易并发。 使用 MQ 后的好处,请见上图: 1、业务可注册、可配置。 2、获取数据规则可配置。 3、成功消费 MQ 中的消息才会被 Ack,提高可靠性。 4、大大增强了异步处理业务作业的能力: 定时从数据库获取数据后,存入 MQ 消息队列,然后 Job 会定期扫描 MQ 消息队列,假设 Job 扫描后先预取 5 条消息,然后异步处理这 5 条消息,也就是说这 5 条消息可能会同时被处理。

数据库
阅读更多