- 浏览: 22436 次
- 性别:
- 来自: 杭州
最新评论
文章列表
最近在做redis封装的过程中,需要使用序列化进行数据的传输,索性就把各种序列化方案都拿出来做了一个对比。
序列化有两种用途:
1)把对象的字节序列永久的保存在硬盘中
2)在网络上传输对象的字节序列
场景:通过模拟一个普通的POJO类进行序列化和反序列化的过程
每种情况进行1000万次的循环
不同版本JDK的模拟
序列化方案:
1.fst
...
[置顶] dubbo在多机房多注册中心的方案
- 博客分类:
- 架构
技术交流群:534368042
起因:项目在服务化之后,开辟了一个新的专有云机房A,在原有物理机房B系统不迁移的情况下,需要A的系统调用B的各种dubbo服务,且A到B之间不能直接访问需要通过交换机做网络映射,现有B内部的网段是192.168.1.X A网段59.10.59.X 映射后A访问B的网段是10.59.10.X,造成A消费者无法直接注册到B的zookeeper集群注册中心,访问B的服务。
方案:通过dubbo的双注册中心的模式,A机房访问B机房服务通过修改A机房机器的hosts例如B机房服务内网地址192.168.1.120 机器名app1 这在A机房机器消费者hosts ...
转:http://201605130349.iteye.com/blog/2298985
Service.xml
Server.xml配置文件用于对整个容器进行相关的配置。
<Server>元素:是整个配置文件的根元素。表示整个Catalina容器。
属性:className:实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache.catalina.core.StandardServer类。Port:Tomcat服务器监听用于关闭Tomcat服务器的命令(必须)Shutdown:发送到端口上用于关闭Tomcat服务器的命 ...
JVM类加载器加载过程
- 博客分类:
- java
转:http://yizhenn.iteye.com/blog/2299034
有三种默认的类加载器,分别为Bootstrap ClassLoader,Extension CLassLoader以及App ClassLoader。其中,Bootstrap Classloader用于加载JAVA的核心类库,Extension Classloader用于加载JAVA的扩展类库,而App ClassLoader则用于装载类路径中的用户自定义的类。
网上有一些关于缓存穿透和缓存雪崩的解决方案,无非是:
1.如果查询数据为null,则把null进行缓存
2.使用布隆过滤器
先来说说缓存穿透的概念:我们在项目中使用缓存通常都是APP先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。
再来讲讲我们的业务场景:
1.通常我们是首页,或是统计页,用户请求较多,首页进入系统必定会加载,
受影响的行数,但是主键会自动拼装到对象中
经过服务化之后,拆分出的用户中心,经过一段时间的监控,发现几个问题:1.每天的调用次数大约在2-3亿之间2.60%的调用集中在TOP100个接口之中3.用户中心的memcached压力在用户中心的线程排在第一个4.个别接口成为了服务化过程 ...
架构网站
中文:
1)http://www.infoq.com/cn/architecture/
英文:
1)http://www.codingthearchitecture.com/
2) http://www.softwarearchitecturefordevelopers.com/
3)http://processofsoftwarearchitecting.com/
4)
Linux软连接和硬链接
- 博客分类:
- 操作系统
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中 ...
现在对程序员的普遍(暗黑)看法是,这是一群所有时间都窝一个黑暗的房间里,与数百万行代码为伍,也许甚至不具备人际交往能力的“程序猿”。好吧,虽然我也有编程背景,所以可能会有点偏颇,但是这显然是无稽之谈。
程序员不仅能力卓绝——是创造现代生活和商业的基石,而且还参与多种社会生产活动。许多程序员同时也会去经营企业。是的,从程序员到CEO的旅途不可谓不艰辛,在某些情况下,这是一个重大的转变。但只要你这么去做,就会成就最好的公司。比尔·盖茨,马克·扎克伯格(Mark Zukerberg),Marissa Mayer(雅虎CEO)和James Dyson(戴森集团的创始人、无袋式真空吸尘器的发明者)都 ...
1.下载mysql免安装包
2. 解压MySQL压缩包
将以下载的MySQL压缩包解压到自定义目录下。
3. 添加环境变量
变量名:MYSQL_HOME
变量值:D:\Program Files\mysql-5.6.25-winx64
即为mysql的自定义解压目录。
再在Path中添加 %MYSQL_HOME%\bin
4. 注册windows系统服务
将mysql注册为windows系统服务
操作如下:
1)新建一个my.ini文件并把my.ini文件拷贝到c:\windows目录下,my.ini内容如下:
[client]
port=3306
default-character- ...
大型网站后台架构的演变
- 博客分类:
- 架构
随着用户访问量的不断增加,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过度与变化来陈述。
1.1 网站后台架构
主要指由web server 、应用服务器、数据库、存储、监控等组成的网站后台系统。
1.2 架构演变
个人站点后台架构。如图2-1所示。
图2-1 单台一组
如图所示,如果是个人站点,访问量不大,一般都是将web server、应用服务器、数据库部署在一台物理服务器上。从图中也可以看到,一个网站最基本的后台需要web server、应用服务器、数据库三部分组成。
1.2.1 网站架构的进一步演变
考虑到网站 ...
何为系统架构师、项目经理、系统分析师、产品经理
- 博客分类:
- 杂谈
【转】在我国,可能很少有程序员能说清楚“系统架构师、项目经理、系统分析师、产品经理”这些职位的区别(职责、工作内容及性质等),对这些概念混淆不清,自身也很难有
清晰的职业规划。也难怪,毕竟土壤不好。中国的软件行业还处于发展初期,刚刚起步,很多小公司都是三五人的程序员团队,甚至还有“单兵作战”的。条件有限,不可能分得这么细。规划的那般理想化。就连我所接触到的金蝶软件(CMM4的软件公司),也对这些职位规划的也是含糊不清的,何况小公司的团队呢。
中国的程序员,大多是“身兼多职”的,很多都是全能人才,可薪资待遇却低得可怜。好了,不抱怨了,说正经的。
何谓系统架构师? 架构师的主要责任是 ...
ANALYZE TABLE BASEINFO COMPUTE STATISTICS;
select * from organizations;
SELECT blocks, empty_blocks, num_rows
FROM user_tables
WHERE table_name = 'BASEINFO';
alter table BASEINFO enable row movement
alter table BASEINFO shrink space cascade;
alter table BASEINFO disable row movement;
Spring3.1提供了新的属性管理API,而且功能非常强大且很完善,对于一些属性配置信息都应该使用新的API来管理。
新的属性管理API
PropertySource:属性源,key-value属性对抽象,比如用于配置数据
PropertyResolver:属性解析器,用于解析相应key的value
Environment:环境,本身是一个PropertyResolver,但是提供了Profile特性,即可以根据环境得到相应数据(即激活不同的Profile,可以得到不同的属性数据,比如用于多环境场景的配置(正式机、测试机、开发机DataSource配置))
Profile:剖面,只有激活 ...