首 页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 尾 页

二爷闲谈:产品经理究竟要不要会编程?

发布者: PHPYuan | 发布时间:2018-06-04

只有那些会编程的产品经理才能理直气壮地说,不需要。

二爷闲谈:产品经理究竟要不要会编程?

– 1 –

产品经理究竟要不要会编程?这是个老生常谈的问题,我们先把它放下来,看另外一个问题:「一个咖啡师,要不要会种咖啡」。

上周朋友介绍我去一家藏在写字楼里的专业咖啡馆,咖啡师像做科学研究一样称重、磨豆、量温度、看时间、冲咖啡。我随口问道,弄这么复杂,跟楼下星巴克有什么区别。没想到让咖啡师打开了话匣子,从咖啡聊到咖啡豆,再聊到咖啡的产地,双眼闪光,如数家珍。

我当时脑子里就闪过一个念头,假如我抄下他的操作步骤,巨细无靡地照做,应该也可以做出一杯还不错的咖啡。要是我能懂得怎样控制和调整其中一些关键步骤的参数,加以练习,或许还能成为一个及格见习咖啡师。

但倘若想要游刃有余,成为专业的咖啡师,我恐怕也要像他一样,知道咖啡的产地、种植方式、处理工艺和贮存条件。除此之外,可能还要弄清楚不同咖啡机的构造和原理。

– 2 –

从某种角度来说,我认为这就是「产品经理究竟要不要会

想读更多 ->

秒杀系统设计的 5 个要点:前端三板斧+后端两条路

发布者: PHPYuan | 发布时间:2018-06-04

高并发,cache,锁机制基于缓存架构redis,Memcached的先进先出队列。稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多个节点的JVM,synchronized所有在JVM上加锁是不行了数据库压力秒杀超卖问题如何防止用户来刷, 黑名单?IP限制?利用memcached的带原子性特性的操作做并发控制

秒杀简单设计方案

比如有10件商品要秒杀,可以放到缓存中,读写时不要加锁。 当并发量大的时候,可能有25个人秒杀成功,这样后面的就可以直接抛秒杀结束的静态页面。进去的25个人中有15个人是不可能获得商品的。所以可以根据进入的先后顺序只能前10个人购买成功。后面15个人就抛商品已秒杀完。

假设我们的秒杀场景

比如某商品10件物品待秒. 假设有100台web服务器(假设web服务器是Nginx + Tomcat),n台app服务器,n个数据库

第一步 如果Java层做过滤, 可以在每台web服务器的业务处理模块里做个计数器AtomicInteger(10)=待秒商品总数,decreaseAndGet()>=0的继续做后续处理, <0的直接返回秒杀结束页面,这样经过第一步的处理只剩下100台*10个=1000个请求。

第二步, memcached 里以商品id作为key的value放个10, 每个web

想读更多 ->

使用shedlock将spring schedule上锁

发布者: PHPYuan | 发布时间:2018-06-04

本文讲述如何使用shedlock给spring schedule上锁,保证集群内部调度任务不会重复执行,避免资源浪费。

maven

<dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>0.16.1</version></dependency><dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-provider-jdbc-template</artifactId><version>0.16.1</version></dependency>

shedlock提供了mongo、redis、zookeeper、jdbc等的锁实现,这里使用jdbc。

shedlock配置

@Configuration@EnableSchedulingpublic class ShedlockConfig {

想读更多 ->

浅析Linux服务器网络开发模型

发布者: PHPYuan | 发布时间:2018-06-04

为什么Nginx的性能要比Apache高得多?

这主要是因为Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(FreeBSD)网络I/O模型,而Apache则使用的是传统的select模型。曾在一篇博客上看到有这么个实例:

假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.如果你使用的阻塞IO 模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的.现在时代变化了,开始使用多路复用IO模型来处理这个问题.你告诉你的朋友来了A号楼找楼管大妈,让她告诉你该怎么走.这里的楼管大妈扮演的就是多路复用IO的角色。

解释select和epoll模型的工作方式:

select版大妈做的是如下的事情:比如同学甲的朋友来了,select版大妈比较笨,她带着朋友挨个房间进行查询谁是同学甲,你等的朋友来了。如果每到来一个朋友楼管大妈都要全楼的查询同学,那么处理的效率必然就低下了,过不久楼底就有不少的人了。

epoll版大妈就比较先进了,她记下了同学甲的信息,比如说他的房间号,那么等同学甲的朋友到来时,只需要告诉该朋友同学甲在哪个房间即可,不用自己亲自带着人满大楼的找

想读更多 ->

MySQL DBA常见面试题(一)

发布者: PHPYuan | 发布时间:2018-06-04

1、MySQL主从复制的原理。

2、Seconds_Behind_Master的原理。

3、主从延迟的原因有哪些?

4、MySQL常见存储引擎及各自特点。

5、innodb_flush_log_at_trx_commit参数0、1和2分别代表什么?

6、Mysql中varchar和char的区别

7、varchar(50)中的50代表的含义、int(20)中20的含义。

8、MySQL binlog的几种日志录入格式的涵义、适用场景和在复制中的优劣。

9、重做日志和二进制日志的区别(至少三点)

10、Explain执行计划中要关注哪些要素?

想读更多 ->

用PHP保存远程视频到本机电脑的小插件

发布者: PHPYuan | 发布时间:2018-06-05

有时候,我们看到一些视频,为了保存在自己的电脑上,我们很难直接下载到视频,都要借助一些工具,今天就用PHP来写了一个这样的小插件,主要是我要看的这个网站它的广告太多了,每个视频,每次打开先是55秒广告,然后再是15秒广告,所以,后来就用这个小工具下载到电脑上看,免除了等待时间。

用PHP保存远程视频到本机电脑的小插件

想读更多 ->

如何教你的孩子编程

发布者: PHPYuan | 发布时间:2018-06-04

如何教你的孩子编程?无论您的孩子的将来职业道路如何,在这个技术驱动的世界,学习编程是他们需要保持领先的关键技能。编程教您的孩子分析问题,解决问题,提升创造力和沟通的技巧。除了孩子们学习的技能之外,编程可以非常有趣,并且可以让小孩子集中注意力。

大多数成功的天才都在非常年轻的时候就开始磨练自己的技能。当你的孩子在年轻时开始学习编程时,很难想象当他们年龄大些的时候他们会开发出令人惊讶的应用程序和工具。

在教你的孩子编程时,你必须尽可能地让它变得有趣和令人兴奋,因为在7-10岁的时候,他们有点太年轻,无法理解“if - then(如果 - 当时)”的意思。如今优秀的应用程序和游戏可用来吸引他们的好奇心,并通过探索和游戏向他们传授基本知识。换句话说,教孩子们的最好方式就是通过玩耍。

大多数学校已经开始考虑将编程课程纳入他们的课程。然而,作为一个家长,你不能把一切都交给老师,你必须尽自己的本分。

以下是给父母教育孩子编程的技巧,应用和方法:

如何教你的孩子编程

想读更多 ->

聊聊nginx与tomcat的5xx

发布者: PHPYuan | 发布时间:2018-06-03

本文主要讲述一下nginx与tomcat的502、504、503错误及其常见的产生原因。

502

定义

502 Bad Gateway : 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

常见原因

后端服务挂了的情况,直接502后端服务在重启

实例

将后端服务关掉,然后向nginx发送请求后端接口,日志如下:

access.log127.0.0.1 - - [22/Dec/2017:20:44:38 +0800] "GET /timeout/long-write HTTP/1.1" 502 537 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"error.log2017/12/22 20:45:12 [error] 1481#0: *3 kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0

想读更多 ->

使用基础mybatis代替原始jdbc

发布者: PHPYuan | 发布时间:2018-06-03

mybatis依赖包

在上一篇其实已经说过,使用mybatis并不是就不用jdbc了,实际上不论使用哪个持久层框架,底层都还是要经过jdbc。使用java和数据库打交道(起码关系型数据库),jdbc是必不可少的,区别只在与需不需要自己手动实现。

因此,在我以mysql为数据库做例子时,即便是使用mybatis,依然需要依赖mysql的java驱动包。除此之外,就是还需要mybatis相应的jar包,那么使用maven的依赖配置就是如下这样:

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version></dependency>

mybatis数据源配置mybatis.xml

想读更多 ->