Mr.栋

简单


  • 首页

  • 关于

  • 归档

  • 标签

docker私服搭建

发表于 2016-07-11 | 阅读次数

在安装好docker之后,启动之前先设置一些docker的运行参数:

在/etc/sysconfig/docker中(centos6,centos7等系列)修改:

OPTIONS=’–selinux-enabled –storage-opt dm.basesize=100G –storage-opt dm.loopdatasize=900G –storage-opt dm.loopmetadatasize=16G –insecure-registry docker.puhuifinance.com:5000 -H unix:///var/run/docker.sock –graph=/data/docker/dockerapp’

-H 0.0.0.0:2376 作为swarm的调用接口,暂不添加

阅读全文 »

docker

发表于 2016-07-11 | 阅读次数

docker安装

在centos7.1上(内核默认3.10)执行以下命令即可安装最新版本:(当前是1.11.2)
curl -sSL https://get.docker.com/ | sudo sh

在centos6系列的安装:首先升级内核到3.10,然后在执行以上安装命令,得到版本:1.7.1。

在centos7.0上,首先升级到7的最新版本(7.1;7.2),然后执行:yum -y install docker,得到版本:1.8.2(主流稳定版本)。

ubuntu直接安装。

阅读全文 »

springcloud

发表于 2016-06-28 | 阅读次数

spring cloud 总结

image

eureka

实现思路

在com.netflix.discovery.DiscoveryClient启动的时候,会初始化一个定时任务,定时的把本地的服务配置信息,即需要注册到远端的服务信息自动刷新到注册服务器上。

通过http方式与服务交互,每个服务会以心跳的方式通知eureka,eureka会统计最后一分钟内的心跳次数(Renews (last min)),如果心跳次数小于eureka的Renews threshold值则开启保护模式.

eureka内部有定时任务清除已经过期的服务(既规定周期内(可以配置)没有心跳的服务)
心跳周期也可以配置

相应的每个服务都会缓存eureka的注册信息提高效率

https://github.com/Netflix/eureka/wiki/Eureka-REST-operations

http://tietang.wang/

http://fanlychie.github.io/post/spring-cloud-netflix-eureka.html

eureka优势zk

优点:

Eureka提供了一个客户端库,该库提供了服务心跳、服务健康检查、自动发布及缓存刷新等功能。

如果使用ZooKeeper,这些功能都需要自己实现,并且zookeeper通过心跳发现服务不可用时,会立即删除注册到zookeeper的服务;而eureka不会立即删除服务,因为注册的服务有可能只是因为网络轻微波动导致无法发送心跳,并不是服务不可用。

Eureka在客户端会有缓存。即使所有Eureka服务器不可用,服务注册信息也不会丢失。缓存在这里是恰当的,因为它只在所有的Eureka服务器都没响应的情况下才会用到。

Eureka使用Ribbon组件实现客户端负载均衡策略

阅读全文 »

bug

发表于 2016-06-22 | 阅读次数

bug

1.freemarker

展示id的时候注意加!c,否则数量大于999时候就会为1,000.

2.https 重定向

注意添加http rewrite 到https

3.docker 时间问题

启动时候注意挂载宿主机时间

1
-v /etc/localtime:/etc/localtime:ro

启动java时候注意添加java参数

1
-Dfile.encoding=utf-8 -Dsun.jnu.encoding=UTF8 -Duser.timezone=Asia/Shanghai

4.eureka client注册失败

由于原项目中有xstream.jar包,eureka中内置这个包,所以只需要删除原项目中的xstream.jar即可!

电商秒杀

发表于 2016-06-07 | 阅读次数

活跃用户处理机制 将过载保护设置在CGI入口层

随心所欲

当我们的用户量逐步上升,系统依然出现吃紧和性能跟不上的阶段。

阅读全文 »

javanio

发表于 2016-06-07 | 阅读次数

Channel的实现

这些是Java NIO中最重要的通道的实现:

FileChannel:从文件中读写数据。
DatagramChannel:能通过UDP读写网络中的数据。
SocketChannel:能通过TCP读写网络中的数据。
ServerSocketChannel:可以监听新进来的TCP连接,像Web服务器那样。对每一个新进来的连接都会创建一个SocketChannel。

阅读全文 »

redis

发表于 2016-06-07 | 阅读次数

Redis实现分布式锁思路

    思路很简单,主要用到的redis函数是setnx(),这个应该是实现分布式锁最主要的函数。首先是将某一任务标识名(这里用Lock:order作为标识名的例子)作为键存到redis里,并为其设个过期时间,如果是还有Lock:order请求过来,先是通过setnx()看看是否能将Lock:order插入到redis里,可以的话就返回true,不可以就返回false。当然,在我的代码里会比这个思路复杂一些,我会在分析代码时进一步说明。

阅读全文 »

zookeeper选举

发表于 2015-11-07 | 阅读次数

如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是”electionAlg”,其中1对应的是LeaderElection算法,2对应的是AuthFastLeaderElection算法,3对应的是FastLeaderElection算法.默认使用FastLeaderElection算法.其他两种算法我没有研究过,就不多说了.

要理解这个算法,最好需要一些paxos算法的理论基础.

阅读全文 »

flume-kafka-storm-redis集群搭建

发表于 2015-09-07 | 阅读次数

准备

zookeeper3.4.8、kafka0.9.0.1、jdk8、flume1.6.0、storm0.9.6、redis3.2

配置flume

配置flume/conf/tomcat.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
agent1.sources = ngrinder
agent1.sources.ngrinder.type = exec
agent1.sources.ngrinder.command = tail -F /data/boot/logcase/logcase.log
agent1.sources.ngrinder.channels = mc1

agent1.channels = mc1
agent1.channels.mc1.type = memory
agent1.channels.mc1.capacity = 100

agent1.sinks = avro-sink
agent1.sinks.avro-sink.type = org.apache.flume.sink.kafka.KafkaSink
agent1.sinks.avro-sink.topic = mytopic
agent1.sinks.avro-sink.brokerList = 127.0.0.1:9092
agent1.sinks.avro-sink.requiredAcks = 1
agent1.sinks.avro-sink.batchSize = 20
agent1.sinks.avro-sink.channel = mc1
阅读全文 »

系统安全

发表于 2015-06-07 | 阅读次数

XSS攻击:

植入脚本

解决办法:

html代码转义 jstl标签 escapeXml 设置为true

阅读全文 »
1234
zhang dong

zhang dong

Make my life plan and use my life to perform.

34 日志
48 标签
© 2018 zhang dong
由 Hexo 强力驱动
主题 - NexT.Muse