发表于: 2016-11-02 22:24:53

0 2333


今天完成的事情:旧项目接口先暂停,让我帮助修改另一个与司机磅房运输相关的项目接口。

遇到的问题:

1.

double类型计算损失精度的问题

http://wxinpeng.iteye.com/blog/1319813

使用BigDecimal代替double进行计算


NumberFormat 

数字格式化输出的基类

2.

如何在eclipse中折叠代码

需要下载插件,也就是jar。然后倒入eclipse软件目录下的plugins目录中

http://www.cnblogs.com/haiq/archive/2011/06/22/2087069.html

3.

The error occurred while setting parameters

Duplicate entry '1' for key 'PRIMARY'


将报错的语句处理后解决,但是网上查到的解决办法没有看明白,需要学习下。

4.

mysql 使用TIMESTAMPDIFF 函数只能计算具体的日期,

我想实现根据表中的两列时间计算的差 生成一个新列然后进行order排序,

网上查了一下发现只能使用-号计算

收获:

1学习Nginx

http://tengine.taobao.org/book/chapter_02.html


1.nginx的默认运行方式是多进程的方式


nginx在启动后,会有一个master进程和多个worker进程。


master进程主要用来管理worker进程包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运


行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。


而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的


请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它


进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,这里面的原因与nginx的进程


模型以及事件处理模型是分不开的。


2.nginx如何处理命令

我们只需要与master进程通信就可以控制worker进程

kill -HUP pid

kill是linux系统终止进程的命令 pid是要终止进程的id号


首先master进程在接到信号后,会先重新加载配置文件,然后再启动新的worker进程,并向所有老的worker进程发


送信号,告诉他们可以光荣退休了。新的worker在启动后,就开始接收新的请求,而老的worker在收到来自master


的信号后,就不再接收新的请求,并且在当前进程中的所有未处理完的请求处理完成后,再退出




我们看到,执行命令时,我们是启动一个新的nginx进程,而新的nginx进程在解析到reload参数后,就知道我们的


目的是控制nginx来重新加载配置文件了,它会向master进程发送信号,然后master进程回想一样执行操作



3.如何做到每个worker进程都有机会处理任意连接请求?


首先,每个worker进程都是从master进程fork过来,在master进程里面,先建立好需要listen的socket(listenfd)之后,

然后再fork出多个worker进程。所有worker进程的listenfd会在新连接到来时变得可读,为保证只有一个进程处理该连接,

所有worker进程在注册listenfd读事件前抢accept_mutex,抢到互斥锁的那个进程注册listenfd读事件,在读事件里调用accept接受该连接。

当一个worker进程在accept这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,


2.什么是socket

https://www.zhihu.com/question/29637351?sort=created

知乎的一个回答

感觉做javaweb需要恶补下计算机知识,不然有些内容有点看不懂


3.RDS、redis、SLB、消息中间件

关于RDS(远程数据服务)

关系型数据库服务(Relational Database Service,简称RDS)是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。

什么是ADO

一种程序对象

关于redis

redis是一个key-value存储系统,是一种非关系型数据库,

关于memcached

Memcached 是一个高性能的分布式内存对象缓存系统

这里涉及到常用的缓存,需要好好了解下。

关于SLB

服务器负载均衡(Server Load Balancing),可以看作HSRP(热备份路由器协议)的扩展,实现多个服务器之间的负载均衡。

关于消息中间件

看百度百科的解释没明白,我个人理解为不同服务之间的一种通讯工具,类似中间商一样的作用。这里涉及到SOA分布式系统,需要好好了解。

通过提供消息传递和消息排队模型,消息中间件可以在分布式环境下扩展进程间的通信。





返回列表 返回列表
评论

    分享到